package Linklist;
/*     给你一个链表的头节点 head 和一个整数 val ，请你删除链表中所有满足 Node.val == val 的节点，并返回 新的头节点 。
        示例 1：
        输入：head = [1,2,6,3,4,5,6], val = 6
        输出：[1,2,3,4,5]

        示例 2：
        输入：head = [], val = 1
        输出：[]

        示例 3：
        输入：head = [7,7,7,7], val = 7
        输出：[]
        */
public class lc203 {
    public ListNode removeElements(ListNode head, int val) {//可能涉及到头节点的删除，新设置一个虚拟头节点放在head前
        if(head==null)  return head;
        ListNode l=new ListNode(-1,head);
        ListNode p=l;
        ListNode q=head;
        while(q!=null){
            if(q.val==val){
                q=q.next;
                p.next=q;
            }else{
                p=p.next;
                q=q.next;
            }
        }
        return l.next;//应该返回的是虚拟头节点的下一个

    }
}
